//
//  NSDate+JwCate.h
//  JwPack
//
//  Created by 陈警卫 on 2023/2/23.
//

#import <Foundation/Foundation.h>

@interface NSDate (JwCate)

/// 年
- (NSInteger)jw_year;

/// 月
- (NSInteger)jw_month;

/// 日
- (NSInteger)jw_day;

/// 时
- (NSInteger)jw_hour;

/// 分
- (NSInteger)jw_minute;

/// 秒
- (NSInteger)jw_second;

/// 毫秒
- (NSInteger)jw_nanosecond;

/// 星期(周日:1 周一:2 ...)
- (NSInteger)jw_weekday;

/// 周
- (NSInteger)jw_weekdayOrdinal;

/// 本月的第几周
- (NSInteger)jw_weekOfMonth;

/// 本年的第几周
- (NSInteger)jw_weekOfYear;

/// 季度
- (NSInteger)jw_quarter;

/// 闰月
- (BOOL)jw_isLeapMonth;

/// 闰年
- (BOOL)jw_isLeapYear;

/// 是否今天
- (BOOL)jw_isToday;

/// 加年
- (NSDate *)jw_dateAddYears:(NSInteger)years;

/// 加月
- (NSDate *)jw_dateAddMonths:(NSInteger)months;

/// 加周
- (NSDate *)jw_dateAddWeeks:(NSInteger)weeks;

/// 加天
- (NSDate *)jw_dateAddDays:(NSInteger)days;

/// 加时
- (NSDate *)jw_dateAddHours:(NSInteger)hours;

/// 加分
- (NSDate *)jw_dateAddMinutes:(NSInteger)minutes;

/// 加秒
- (NSDate *)jw_dateAddSeconds:(NSInteger)seconds;

/// 时间戳转date
+ (NSDate *)jw_dateWithStamp:(NSInteger)stamp;

/// 时间戳格式化
/// format默认 "yyyy-MM-dd HH:mm:ss"
+ (NSString *)jw_stringWithStamp:(NSInteger)stamp;

/// 时间戳格式化
/// format默认 "yyyy-MM-dd HH:mm:ss"
+ (NSString *)jw_stringWithStamp:(NSInteger)stamp format:(NSString *)format;

/// 时间格式化
/// format默认 "yyyy-MM-dd HH:mm:ss"
- (NSString *)jw_stringWithFormat:(NSString *)format;

/// 时间格式化
/// format默认 "yyyy-MM-dd HH:mm:ss"
- (NSString *)jw_stringWithFormat:(NSString *)format timeZone:(NSTimeZone *)timeZone locale:(NSLocale *)locale;

/// 格式化时间转date
/// format默认 "yyyy-MM-dd HH:mm:ss"
+ (NSDate *)jw_dateWithString:(NSString *)dateString format:(NSString *)format;

/// 格式化时间转date
/// format默认 "yyyy-MM-dd HH:mm:ss"
+ (NSDate *)jw_dateWithString:(NSString *)dateString format:(NSString *)format timeZone:(NSTimeZone *)timeZone locale:(NSLocale *)locale;

/// 时间戳
+ (NSString *)jw_timestamp;

/// 时间戳
+ (NSString *)jw_timestampMilli;

/// 时钟戳
+ (NSString *)jw_dateFmtString;

@end

